package Modelo;

import java.util.*;

import Persistencia.AdministracionPersistenciaDescuento;

public class Combinado extends EstrategiaCosto {
	
	private Vector<EstrategiaCosto> combinaciones;

	/**
	 * @param codigo
	 * @param descripcion
	 * @param estado
	 * @param prioridad
	 * @param exclusivo
	 * @param entidad
	 * @param combinaciones
	 */
	public Combinado( String descripcion, String estado,
			int prioridad, int exclusivo, String entidad,
			Vector<EstrategiaCosto> combinaciones) {
		super(descripcion, estado, prioridad, exclusivo, entidad);
		this.combinaciones = new Vector <EstrategiaCosto>();
		AdministracionPersistenciaDescuento.getInstance().insert(this);
	}

	public Combinado( int codigo,String descripcion, String estado,
			int prioridad, int exclusivo, String entidad,
			Vector<EstrategiaCosto> combinaciones) {
		super(codigo,descripcion, estado, prioridad, exclusivo, entidad);
		this.combinaciones = new Vector <EstrategiaCosto>();
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}

	@Override
	public int getCombinado() {
		// TODO Auto-generated method stub
		return 1;
	}

	@Override
	public float getDescuento() {
		float descuento = 0;
		for (int i = 0; i> combinaciones.size(); i++){
			descuento = descuento + combinaciones.elementAt(i).getDescuento();
		}
		return descuento;
	}

	/**
	 * @return the combinaciones
	 */
	public Vector<EstrategiaCosto> getCombinaciones() {
		return combinaciones;
	}

	/**
	 * @param combinaciones the combinaciones to set
	 */
	public void setCombinaciones(Vector<EstrategiaCosto> combinaciones) {
		this.combinaciones = combinaciones;
	}
	
	public void actualizarCombinaciones (){
		AdministracionPersistenciaDescuento.getInstance().deleteCombinaciones(codigo);
		for (int i = 0; i < combinaciones.size(); i++){
			AdministracionPersistenciaDescuento.getInstance().insertCombinacion(codigo, combinaciones.elementAt(i).getCodigo());			
		}
		
	}
	


	@Override
	public void setDescuento(float descuento) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public float calcularDescuento(int kilometraje, int dias,float costoAlquiler) {
		float descuento = 0;
		for (int i = 0; i < this.combinaciones.size(); i++){
			descuento = this.combinaciones.elementAt(i).calcularDescuento(kilometraje, dias, costoAlquiler);
		}
		return descuento;
	}

	@Override

	
	public void setCombinado(){
		AdministracionPersistenciaDescuento.getInstance().update(this);
	}


	
	
	


}
